A processing system is a system for processing data and contains at least one processing device, e.g., a microprocessor, arranged to perform certain tasks, such as the execution of a sequence of instructions that may be provided, for example, as part of a computer program.
An interrupt is a signal indicating the need for attention from, or a change in execution by, a processor core. The interrupt may cause a processing device to switch its device context or save its state of execution and to execute an interrupt handler or interrupt service routine (ISR) associated with the interrupt. An interrupt may be triggered by an interrupt request (IRQ). Interrupt requests may be signals generated by programs or peripheral devices and sent to the processing device, for example, to request the processing device to perform a requested service while abandoning its current tasks for the period.
The interrupt requests are transmitted to the processing device via an interrupt controller connected to receive the issued interrupt requests on interrupt request lines, each line typically dedicated to signal a particular associated interrupt request. The interrupt controller receives the interrupt requests from a variety of different sources of interrupt requests, e.g. peripheral devices, internal modules, and other processing devices, and asserts or provides the interrupt request to the processing device on one or more lines connected to the processing device, taking into account priorities or priority levels or interrupt request levels (IRQL) assigned to the interrupt requests.
Temporary failure of an interrupt controller may, for example, cause IRQ errors, such as priority errors, spurious, constant, wrong, late or even lost IRQs which may result in malfunction of the processing system and may, for example, result in dangerous situations, for example when being used in a safety critical system. Detection of errors generated by an interrupt controller device may, for example, be performed by using duplicated or replicated interrupt controllers connected to the same interrupt request lines and comparing the outputs of the interrupt controllers. In multiprocessor systems containing multiple processing devices and an associated set of interrupt controllers, the interrupt controllers may use an error detection strategy wherein the interrupt controllers are used in combination to control their outputs.